package main.java;

import java.util.LinkedHashSet;
import java.util.List;

public class DuplicateRemover<T> implements DataProcessor<T> {
    // 无参构造
    public DuplicateRemover() {}

    @Override
    public DataContainer<T> process(DataContainer<T> input) {
        if (input == null) {
            throw new IllegalArgumentException("input cannot be null");
        }
        // LinkedHashSet：去重且保留插入顺序
        LinkedHashSet<T> uniqueSet = new LinkedHashSet<>();
        for (int i = 0; i < input.size(); i++) {
            uniqueSet.add(input.get(i));
        }
        // 基于去重后的集合创建新容器
        return new DataContainer<>(List.copyOf(uniqueSet));
    }

    // 个性化要求：处理器名称包含学生姓名（李蓉曼）
    @Override
    public String getProcessorName() {
        return "李蓉曼的去重处理器";
    }
}